<?php 
class UsuarioBusiness{
	public static function isLogado($perfil = ""){
		if($_SESSION["login"] == true){
			if(  array_search($perfil, $_SESSION["perfil"]) !== false || $perfil == ""){
			
				return true;
			}
		}
		return false;
	}
	
	public static function getUsuarioByLoginSenha($args) {
		 
		
		$login = $args["login"];
		$senha = $args["senha"];
		$sql = "select * from usuario where login = '$login' and senha = '$senha'";
		$rs = dbManager::getArrayObj($sql);
		 
		return $rs;
	}
	public static function LogarByLoginSenha($args){
		$usuario = self::getUsuarioByLoginSenha($args);
		if(	$usuario != false){
			$array_perfil = self::getPerfilsByIdUsuario($usuario[0]->id_usuario);
			$array_perfil = explode(',',$array_perfil[0]->nm_perfil);
			$_SESSION["login"] = true;
			$_SESSION["perfil"] = $array_perfil;
			$_SESSION["usuario"] = $usuario[0];
			return true;
		}
	
		return false;
	}
	public static function deslogar(){
		$_SESSION["login"] = "";
		$_SESSION["perfil"] = "";
		$_SESSION["usuario"] = "";
	}	
	public static function getPerfilsByIdUsuario($id_usuario){
		$sql = "select GROUP_CONCAT(nm_perfil) as nm_perfil  from usuario_perfil up 
				inner join  perfil p on up.id_perfil = p.id_perfil 
				where id_usuario = ".$id_usuario;
		$rs = dbManager::getArrayObj($sql);
		return $rs;
	}
	
	public static function getUsuarioIdPessoaFisica($id_pessoa_fisica){
		$sql = 'select * from usuario where id_pessoa_fisica = '.$id_pessoa_fisica;
		return dbManager::returnDescription($sql, new Usuario());
	}
	/**
	 * 
	 * @param string $login
	 * @param string $senha
	 * @param array $perfils
	 */
	public static function persistUsuarioByPerfil($login,$senha,$id_pessoa_fisica,$perfils){
		 
		$usuario = self::getUsuarioIdPessoaFisica($id_pessoa_fisica);
		 
		if($usuario == false){
			$usuario = new Usuario();
		}
		//var_dump($usuario);
		$usuario->login = $login;
		$usuario->senha = $senha;
		$usuario->id_pessoa_fisica = $id_pessoa_fisica;
		$usuario = dbManager::persist($usuario);
		
		
 		foreach ($perfils as $index=>$value){
			$usuario_perfil = new UsuarioPerfil();
			$usuario_perfil->id_usuario = $usuario->id_usuario;
			$usuario_perfil->id_perfil = $value;
			dbManager::persist($usuario_perfil);
			//echo $value;
			//var_dump($usuario_perfil);
		}
	}
	
	public static function getLogin($args){
		$sql = "SELECT * FROM `usuario` where login = '" .$args['login']."'";
		$rs = dbManager::getArrayObj($sql);
		return $rs;
	}	
	
	public static function deleteUsuario($args){
		$sql = "select * FROM usuario_perfil up
				inner join usuario u on u.id_usuario = up.id_usuario
				where u.id_pessoa_fisica = '" .$args['id_pessoa_fisica']."'";
		$Usuario = dbManager::returnDescription($sql);
		
		dbManager::deleteByFilter(new UsuarioPerfil(), "id_usuario = ".$Usuario->id_usuario);
		dbManager::deleteByFilter(new Usuario(), "id_pessoa_fisica = '".$args['id_pessoa_fisica']."'");
		return $rs;
	}
}
?>